package bite;
import java.util.*;
/**
 * Creared with IntelliJ IDEA.
 * Description:【查找兄弟单词】
 * 定义一个单词的“兄弟单词”为：交换该单词字母顺序（注：可以交换任意次），而不添加、删除、修改原有的字母就能生成的单词。
 * 兄弟单词要求和原来的单词不同。例如： ab 和 ba 是兄弟单词。 ab 和 ab 则不是兄弟单词。
 * 现在给定你 n 个单词，另外再给你一个单词 x ，让你寻找 x 的兄弟单词里，按字典序排列后的第 k 个单词是什么？
 * User:yxd
 * Date:2022-07-03
 * Time:21:20
 */
public class Day45_2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();//所有的单词个数
        String[] arr = new String[n];
        for (int i = 0; i < n; i++) {
            arr[i] = input.next();
        }
        //目标单词
        String x = input.next();
        //字典序排列的第k个单词
        int k = input.nextInt();
        //兄弟单词个数
        int count = 0;
        List<String> list = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            if(arr[i].equals(x)) {
                continue;
            }else if(isT(x,arr[i])){
                count ++;
                list.add(arr[i]);
            }
        }
        //按字典序排列
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
        });
        System.out.println(count);
        if(list.size() >= k){
            System.out.println(list.get(k - 1));
        }
    }
    public static boolean isT(String s1,String s2){
        char[] ch1 = s1.toCharArray();
        char[] ch2 = s2.toCharArray();
        Arrays.sort(ch1);
        Arrays.sort(ch2);
        int i = 0;
        if(ch1.length != ch2.length){
            return false;
        }
        while (i < ch1.length ){
            if(ch1[i] == ch2[i]){

                i ++;
            }else{
                return false;
            }
        }
        return true;
    }

}
